package com.library.system.modules.notice.service;

import com.library.common.enums.AuditStatusEnum;
import com.library.system.modules.notice.entity.Notice;
import com.library.system.modules.notice.vo.NoticeVO;
import com.library.system.modules.notice.bo.NoticePage;
import com.library.system.modules.notice.bo.NoticeInsert;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;

/**
 * @Author xyh
 * @Desc 通知公告表(Notice)表服务接口
 * @Date 2023-11-04 17:14:08
 */
public interface NoticeService extends IService<Notice> {

    /**
     * 分页查询
     */
    IPage<NoticeVO> queryByPage(NoticePage page);

    /**
     * 根据ID查详情
     */
    NoticeVO queryById(Integer id);

    /**
     * 新增数据
     */
    boolean insertOrUpdate(NoticeInsert noticeInsert);

    /**
     * 通过主键删除数据
     */
    boolean deleteById(Integer id);

    /**
     * 获取还未发送的定时公告
     * @return
     */
    List<Notice> getNoticeSendTime();

    /**
     * 取消定时发布公告
     *
     * @param id
     */
    void cancelNoticeTime(Integer id);

    /**
     * 审核修改公告状态
     * @param id 公告id
     * @param statusEnum 审核状态
     * @param result 结果
     */
    void updateNoticeStatus(Integer id, AuditStatusEnum statusEnum, String result);

}
